"""
在属性名或方法名前加两个下划线开头,声明为私有属性或私有方法
私有属性或私有方法只能在该类的内部调用, 不能再类的外部直接调用
可以提供一个非私有的方法在类的外部间接访问私有的属性或方法
就算是继承关系, 子类也无法直接访问父类的私有属性和方法
python是通过修改方法或者属性的名字来实现私有化的, 会在名字前加__类名(__类__方法(属性))
"""


class A:
    x = 123
    __y = 456  # 私有属性

    def __init__(self, c, d):
        self.c = c
        self.d = d

    def __add(self):  # 私有方法
        return self.c + self.d

    def get_add(self):  # 通过非私有类访问私有类
        return self.__add()

    def get_y(self):  # 让外界访问的到私有属性
        return self.__y


# 实例化对象
a = A(2, 3)
print(a.get_y())
print(a._A__add())
print(a.get_add())